﻿using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Text;
using System.Drawing;

namespace AssemblyExplorer
{
    public static class Icons
    {
        private static ImageList _imageList = new ImageList();
        private static Dictionary<string, int> _indexes = new Dictionary<string, int>();
        static Icons()
        {
            _imageList.Images.Add(ReflectionItems.VSObject_Assembly, Color.Magenta); _indexes.Add("Assembly", 0);
            _imageList.Images.Add(ReflectionItems.VSObject_BSC, Color.Magenta); _indexes.Add("BSC", 1);
            _imageList.Images.Add(ReflectionItems.VSObject_Class, Color.Magenta); _indexes.Add("Class", 2);
            _imageList.Images.Add(ReflectionItems.VSObject_Class_Friend, Color.Magenta); _indexes.Add("Class_Friend", 3);
            _imageList.Images.Add(ReflectionItems.VSObject_Class_Private, Color.Magenta); _indexes.Add("Class_Private", 4);
            _imageList.Images.Add(ReflectionItems.VSObject_Class_Protected, Color.Magenta); _indexes.Add("Class_Protected", 5);
            _imageList.Images.Add(ReflectionItems.VSObject_Class_Sealed, Color.Magenta); _indexes.Add("Class_Sealed", 6);
            _imageList.Images.Add(ReflectionItems.VSObject_Class_Shortcut, Color.Magenta); _indexes.Add("Class_Shortcut", 7);
            _imageList.Images.Add(ReflectionItems.VSObject_Constant, Color.Magenta); _indexes.Add("Constant", 8);
            _imageList.Images.Add(ReflectionItems.VSObject_Constant_Friend, Color.Magenta); _indexes.Add("Constant_Friend", 9);
            _imageList.Images.Add(ReflectionItems.VSObject_Constant_Private, Color.Magenta); _indexes.Add("Constant_Private", 10);
            _imageList.Images.Add(ReflectionItems.VSObject_Constant_Protected, Color.Magenta); _indexes.Add("Constant_Protected", 11);
            _imageList.Images.Add(ReflectionItems.VSObject_Constant_Sealed, Color.Magenta); _indexes.Add("Constant_Sealed", 12);
            _imageList.Images.Add(ReflectionItems.VSObject_Constant_Shortcut, Color.Magenta); _indexes.Add("Constant_Shortcut", 13);
            _imageList.Images.Add(ReflectionItems.VSObject_Delegate, Color.Magenta); _indexes.Add("Delegate", 14);
            _imageList.Images.Add(ReflectionItems.VSObject_Delegate_Friend, Color.Magenta); _indexes.Add("Delegate_Friend", 15);
            _imageList.Images.Add(ReflectionItems.VSObject_Delegate_Private, Color.Magenta); _indexes.Add("Delegate_Private", 16);
            _imageList.Images.Add(ReflectionItems.VSObject_Delegate_Protected, Color.Magenta); _indexes.Add("Delegate_Protected", 17);
            _imageList.Images.Add(ReflectionItems.VSObject_Delegate_Sealed, Color.Magenta); _indexes.Add("Delegate_Sealed", 18);
            _imageList.Images.Add(ReflectionItems.VSObject_Delegate_Shortcut, Color.Magenta); _indexes.Add("Delegate_Shortcut", 19);
            _imageList.Images.Add(ReflectionItems.VSObject_DialogID, Color.Magenta); _indexes.Add("DialogID", 20);
            _imageList.Images.Add(ReflectionItems.VSObject_Enum, Color.Magenta); _indexes.Add("Enum", 21);
            _imageList.Images.Add(ReflectionItems.VSObject_Enum_Friend, Color.Magenta); _indexes.Add("Enum_Friend", 22);
            _imageList.Images.Add(ReflectionItems.VSObject_Enum_Protected, Color.Magenta); _indexes.Add("Enum_Protected", 23);
            _imageList.Images.Add(ReflectionItems.VSObject_Enum_Sealed, Color.Magenta); _indexes.Add("Enum_Sealed", 24);
            _imageList.Images.Add(ReflectionItems.VSObject_Enum_Shortcut, Color.Magenta); _indexes.Add("Enum_Shortcut", 25);
            _imageList.Images.Add(ReflectionItems.VSObject_EnumItem, Color.Magenta); _indexes.Add("EnumItem", 26);
            _imageList.Images.Add(ReflectionItems.VSObject_EnumItem_Friend, Color.Magenta); _indexes.Add("EnumItem_Friend", 27);
            _imageList.Images.Add(ReflectionItems.VSObject_EnumItem_Private, Color.Magenta); _indexes.Add("EnumItem_Private", 28);
            _imageList.Images.Add(ReflectionItems.VSObject_EnumItem_Protected, Color.Magenta); _indexes.Add("EnumItem_Protected", 29);
            _imageList.Images.Add(ReflectionItems.VSObject_EnumItem_Sealed, Color.Magenta); _indexes.Add("EnumItem_Sealed", 30);
            _imageList.Images.Add(ReflectionItems.VSObject_EnumItem_Shortcut, Color.Magenta); _indexes.Add("EnumItem_Shortcut", 31);
            _imageList.Images.Add(ReflectionItems.VSObject_EnumPrivate, Color.Magenta); _indexes.Add("EnumPrivate", 32);
            _imageList.Images.Add(ReflectionItems.VSObject_Event, Color.Magenta); _indexes.Add("Event", 33);
            _imageList.Images.Add(ReflectionItems.VSObject_Event_Friend, Color.Magenta); _indexes.Add("Event_Friend", 34);
            _imageList.Images.Add(ReflectionItems.VSObject_Event_Private, Color.Magenta); _indexes.Add("Event_Private", 35);
            _imageList.Images.Add(ReflectionItems.VSObject_Event_Protected, Color.Magenta); _indexes.Add("Event_Protected", 36);
            _imageList.Images.Add(ReflectionItems.VSObject_Event_Sealed, Color.Magenta); _indexes.Add("Event_Sealed", 37);
            _imageList.Images.Add(ReflectionItems.VSObject_Event_Shortcut, Color.Magenta); _indexes.Add("Event_Shortcut", 38);
            _imageList.Images.Add(ReflectionItems.VSObject_Exception, Color.Magenta); _indexes.Add("Exception", 39);
            _imageList.Images.Add(ReflectionItems.VSObject_Exception_Friend, Color.Magenta); _indexes.Add("Exception_Friend", 40);
            _imageList.Images.Add(ReflectionItems.VSObject_Exception_Protected, Color.Magenta); _indexes.Add("Exception_Protected", 41);
            _imageList.Images.Add(ReflectionItems.VSObject_Exception_Sealed, Color.Magenta); _indexes.Add("Exception_Sealed", 42);
            _imageList.Images.Add(ReflectionItems.VSObject_Exception_Shortcut, Color.Magenta); _indexes.Add("Exception_Shortcut", 43);
            _imageList.Images.Add(ReflectionItems.VSObject_ExceptionPrivate, Color.Magenta); _indexes.Add("ExceptionPrivate", 44);
            _imageList.Images.Add(ReflectionItems.VSObject_Field, Color.Magenta); _indexes.Add("Field", 45);
            _imageList.Images.Add(ReflectionItems.VSObject_Field_Friend, Color.Magenta); _indexes.Add("Field_Friend", 46);
            _imageList.Images.Add(ReflectionItems.VSObject_Field_Private, Color.Magenta); _indexes.Add("Field_Private", 47);
            _imageList.Images.Add(ReflectionItems.VSObject_Field_Protected, Color.Magenta); _indexes.Add("Field_Protected", 48);
            _imageList.Images.Add(ReflectionItems.VSObject_Field_Sealed, Color.Magenta); _indexes.Add("Field_Sealed", 49);
            _imageList.Images.Add(ReflectionItems.VSObject_Field_Shortcut, Color.Magenta); _indexes.Add("Field_Shortcut", 50);
            _imageList.Images.Add(ReflectionItems.VSObject_Friend, Color.Magenta); _indexes.Add("Friend", 51);
            _imageList.Images.Add(ReflectionItems.VSObject_Interface, Color.Magenta); _indexes.Add("Interface", 52);
            _imageList.Images.Add(ReflectionItems.VSObject_Interface_Friend, Color.Magenta); _indexes.Add("Interface_Friend", 53);
            _imageList.Images.Add(ReflectionItems.VSObject_Interface_Private, Color.Magenta); _indexes.Add("Interface_Private", 54);
            _imageList.Images.Add(ReflectionItems.VSObject_Interface_Protected, Color.Magenta); _indexes.Add("Interface_Protected", 55);
            _imageList.Images.Add(ReflectionItems.VSObject_Interface_Sealed, Color.Magenta); _indexes.Add("Interface_Sealed", 56);
            _imageList.Images.Add(ReflectionItems.VSObject_Interface_Shortcut, Color.Magenta); _indexes.Add("Interface_Shortcut", 57);
            _imageList.Images.Add(ReflectionItems.VSObject_Library, Color.Magenta); _indexes.Add("Library", 58);
            _imageList.Images.Add(ReflectionItems.VSObject_Macro, Color.Magenta); _indexes.Add("Macro", 59);
            _imageList.Images.Add(ReflectionItems.VSObject_Macro_Friend, Color.Magenta); _indexes.Add("Macro_Friend", 60);
            _imageList.Images.Add(ReflectionItems.VSObject_Macro_Private, Color.Magenta); _indexes.Add("Macro_Private", 61);
            _imageList.Images.Add(ReflectionItems.VSObject_Macro_Protected, Color.Magenta); _indexes.Add("Macro_Protected", 62);
            _imageList.Images.Add(ReflectionItems.VSObject_Macro_Sealed, Color.Magenta); _indexes.Add("Macro_Sealed", 63);
            _imageList.Images.Add(ReflectionItems.VSObject_Macro_Shortcut, Color.Magenta); _indexes.Add("Macro_Shortcut", 64);
            _imageList.Images.Add(ReflectionItems.VSObject_Map, Color.Magenta); _indexes.Add("Map", 65);
            _imageList.Images.Add(ReflectionItems.VSObject_Map_Friend, Color.Magenta); _indexes.Add("Map_Friend", 66);
            _imageList.Images.Add(ReflectionItems.VSObject_Map_Private, Color.Magenta); _indexes.Add("Map_Private", 67);
            _imageList.Images.Add(ReflectionItems.VSObject_Map_Protected, Color.Magenta); _indexes.Add("Map_Protected", 68);
            _imageList.Images.Add(ReflectionItems.VSObject_Map_Sealed, Color.Magenta); _indexes.Add("Map_Sealed", 69);
            _imageList.Images.Add(ReflectionItems.VSObject_Map_Shortcut, Color.Magenta); _indexes.Add("Map_Shortcut", 70);
            _imageList.Images.Add(ReflectionItems.VSObject_MapItem, Color.Magenta); _indexes.Add("MapItem", 71);
            _imageList.Images.Add(ReflectionItems.VSObject_MapItem_Friend, Color.Magenta); _indexes.Add("MapItem_Friend", 72);
            _imageList.Images.Add(ReflectionItems.VSObject_MapItem_Private, Color.Magenta); _indexes.Add("MapItem_Private", 73);
            _imageList.Images.Add(ReflectionItems.VSObject_MapItem_Protected, Color.Magenta); _indexes.Add("MapItem_Protected", 74);
            _imageList.Images.Add(ReflectionItems.VSObject_MapItem_Sealed, Color.Magenta); _indexes.Add("MapItem_Sealed", 75);
            _imageList.Images.Add(ReflectionItems.VSObject_MapItem_Shortcut, Color.Magenta); _indexes.Add("MapItem_Shortcut", 76);
            _imageList.Images.Add(ReflectionItems.VSObject_Method, Color.Magenta); _indexes.Add("Method", 77);
            _imageList.Images.Add(ReflectionItems.VSObject_Method_Friend, Color.Magenta); _indexes.Add("Method_Friend", 78);
            _imageList.Images.Add(ReflectionItems.VSObject_Method_Private, Color.Magenta); _indexes.Add("Method_Private", 79);
            _imageList.Images.Add(ReflectionItems.VSObject_Method_Protected, Color.Magenta); _indexes.Add("Method_Protected", 80);
            _imageList.Images.Add(ReflectionItems.VSObject_Method_Sealed, Color.Magenta); _indexes.Add("Method_Sealed", 81);
            _imageList.Images.Add(ReflectionItems.VSObject_Method_Shortcut, Color.Magenta); _indexes.Add("Method_Shortcut", 82);
            _imageList.Images.Add(ReflectionItems.VSObject_MethodOverload, Color.Magenta); _indexes.Add("MethodOverload", 83);
            _imageList.Images.Add(ReflectionItems.VSObject_MethodOverload_Friend, Color.Magenta); _indexes.Add("MethodOverload_Friend", 84);
            _imageList.Images.Add(ReflectionItems.VSObject_MethodOverload_Private, Color.Magenta); _indexes.Add("MethodOverload_Private", 85);
            _imageList.Images.Add(ReflectionItems.VSObject_MethodOverload_Protected, Color.Magenta); _indexes.Add("MethodOverload_Protected", 86);
            _imageList.Images.Add(ReflectionItems.VSObject_MethodOverload_Sealed, Color.Magenta); _indexes.Add("MethodOverload_Sealed", 87);
            _imageList.Images.Add(ReflectionItems.VSObject_MethodOverload_Shortcut, Color.Magenta); _indexes.Add("MethodOverload_Shortcut", 88);
            _imageList.Images.Add(ReflectionItems.VSObject_Module, Color.Magenta); _indexes.Add("Module", 89);
            _imageList.Images.Add(ReflectionItems.VSObject_Module_Friend, Color.Magenta); _indexes.Add("Module_Friend", 90);
            _imageList.Images.Add(ReflectionItems.VSObject_Module_Private, Color.Magenta); _indexes.Add("Module_Private", 91);
            _imageList.Images.Add(ReflectionItems.VSObject_Module_Protected, Color.Magenta); _indexes.Add("Module_Protected", 92);
            _imageList.Images.Add(ReflectionItems.VSObject_Module_Sealed, Color.Magenta); _indexes.Add("Module_Sealed", 93);
            _imageList.Images.Add(ReflectionItems.VSObject_Module_Shortcut, Color.Magenta); _indexes.Add("Module_Shortcut", 94);
            _imageList.Images.Add(ReflectionItems.VSObject_Namespace, Color.Magenta); _indexes.Add("Namespace", 95);
            _imageList.Images.Add(ReflectionItems.VSObject_Namespace_Friend, Color.Magenta); _indexes.Add("Namespace_Friend", 96);
            _imageList.Images.Add(ReflectionItems.VSObject_Namespace_Sealed, Color.Magenta); _indexes.Add("Namespace_Sealed", 97);
            _imageList.Images.Add(ReflectionItems.VSObject_Namespace_Shortcut, Color.Magenta); _indexes.Add("Namespace_Shortcut", 98);
            _imageList.Images.Add(ReflectionItems.VSObject_NamespacePrivate, Color.Magenta); _indexes.Add("NamespacePrivate", 99);
            _imageList.Images.Add(ReflectionItems.VSObject_NamespaceProtected, Color.Magenta); _indexes.Add("NamespaceProtected", 100);
            _imageList.Images.Add(ReflectionItems.VSObject_Object, Color.Magenta); _indexes.Add("Object", 101);
            _imageList.Images.Add(ReflectionItems.VSObject_Object_Friend, Color.Magenta); _indexes.Add("Object_Friend", 102);
            _imageList.Images.Add(ReflectionItems.VSObject_Object_Private, Color.Magenta); _indexes.Add("Object_Private", 103);
            _imageList.Images.Add(ReflectionItems.VSObject_Object_Protected, Color.Magenta); _indexes.Add("Object_Protected", 104);
            _imageList.Images.Add(ReflectionItems.VSObject_Object_Sealed, Color.Magenta); _indexes.Add("Object_Sealed", 105);
            _imageList.Images.Add(ReflectionItems.VSObject_ObjectShortcut, Color.Magenta); _indexes.Add("ObjectShortcut", 106);
            _imageList.Images.Add(ReflectionItems.VSObject_Operator, Color.Magenta); _indexes.Add("Operator", 107);
            _imageList.Images.Add(ReflectionItems.VSObject_Operator_Friend, Color.Magenta); _indexes.Add("Operator_Friend", 108);
            _imageList.Images.Add(ReflectionItems.VSObject_Operator_Private, Color.Magenta); _indexes.Add("Operator_Private", 109);
            _imageList.Images.Add(ReflectionItems.VSObject_Operator_Protected, Color.Magenta); _indexes.Add("Operator_Protected", 110);
            _imageList.Images.Add(ReflectionItems.VSObject_Operator_Sealed, Color.Magenta); _indexes.Add("Operator_Sealed", 111);
            _imageList.Images.Add(ReflectionItems.VSObject_Operator_Shortcut, Color.Magenta); _indexes.Add("Operator_Shortcut", 112);
            _imageList.Images.Add(ReflectionItems.VSObject_Private, Color.Magenta); _indexes.Add("Private", 113);
            _imageList.Images.Add(ReflectionItems.VSObject_Properties, Color.Magenta); _indexes.Add("Properties", 114);
            _imageList.Images.Add(ReflectionItems.VSObject_Properties_Friend, Color.Magenta); _indexes.Add("Properties_Friend", 115);
            _imageList.Images.Add(ReflectionItems.VSObject_Properties_Private, Color.Magenta); _indexes.Add("Properties_Private", 116);
            _imageList.Images.Add(ReflectionItems.VSObject_Properties_Protected, Color.Magenta); _indexes.Add("Properties_Protected", 117);
            _imageList.Images.Add(ReflectionItems.VSObject_Properties_Sealed, Color.Magenta); _indexes.Add("Properties_Sealed", 118);
            _imageList.Images.Add(ReflectionItems.VSObject_Properties_Shortcut, Color.Magenta); _indexes.Add("Properties_Shortcut", 119);
            _imageList.Images.Add(ReflectionItems.VSObject_Structure, Color.Magenta); _indexes.Add("Structure", 120);
            _imageList.Images.Add(ReflectionItems.VSObject_Structure_Friend, Color.Magenta); _indexes.Add("Structure_Friend", 121);
            _imageList.Images.Add(ReflectionItems.VSObject_Structure_Private, Color.Magenta); _indexes.Add("Structure_Private", 122);
            _imageList.Images.Add(ReflectionItems.VSObject_Structure_Protected, Color.Magenta); _indexes.Add("Structure_Protected", 123);
            _imageList.Images.Add(ReflectionItems.VSObject_Structure_Sealed, Color.Magenta); _indexes.Add("Structure_Sealed", 124);
            _imageList.Images.Add(ReflectionItems.VSObject_Structure_Shortcut, Color.Magenta); _indexes.Add("Structure_Shortcut", 125);
            _imageList.Images.Add(ReflectionItems.VSObject_Template, Color.Magenta); _indexes.Add("Template", 126);
            _imageList.Images.Add(ReflectionItems.VSObject_Template_Friend, Color.Magenta); _indexes.Add("Template_Friend", 127);
            _imageList.Images.Add(ReflectionItems.VSObject_Template_Private, Color.Magenta); _indexes.Add("Template_Private", 128);
            _imageList.Images.Add(ReflectionItems.VSObject_Template_Protected, Color.Magenta); _indexes.Add("Template_Protected", 129);
            _imageList.Images.Add(ReflectionItems.VSObject_Template_Sealed, Color.Magenta); _indexes.Add("Template_Sealed", 130);
            _imageList.Images.Add(ReflectionItems.VSObject_Template_Shortcut, Color.Magenta); _indexes.Add("Template_Shortcut", 131);
            _imageList.Images.Add(ReflectionItems.VSObject_Type, Color.Magenta); _indexes.Add("Type", 132);
            _imageList.Images.Add(ReflectionItems.VSObject_Type_Friend, Color.Magenta); _indexes.Add("Type_Friend", 133);
            _imageList.Images.Add(ReflectionItems.VSObject_Type_Private, Color.Magenta); _indexes.Add("Type_Private", 134);
            _imageList.Images.Add(ReflectionItems.VSObject_Type_Protected, Color.Magenta); _indexes.Add("Type_Protected", 135);
            _imageList.Images.Add(ReflectionItems.VSObject_Type_Sealed, Color.Magenta); _indexes.Add("Type_Sealed", 136);
            _imageList.Images.Add(ReflectionItems.VSObject_Type_Shortcut, Color.Magenta); _indexes.Add("Type_Shortcut", 137);
            _imageList.Images.Add(ReflectionItems.VSObject_TypeDef, Color.Magenta); _indexes.Add("TypeDef", 138);
            _imageList.Images.Add(ReflectionItems.VSObject_TypeDef_Friend, Color.Magenta); _indexes.Add("TypeDef_Friend", 139);
            _imageList.Images.Add(ReflectionItems.VSObject_TypeDef_Private, Color.Magenta); _indexes.Add("TypeDef_Private", 140);
            _imageList.Images.Add(ReflectionItems.VSObject_TypeDef_Protected, Color.Magenta); _indexes.Add("TypeDef_Protected", 141);
            _imageList.Images.Add(ReflectionItems.VSObject_TypeDef_Sealed, Color.Magenta); _indexes.Add("TypeDef_Sealed", 142);
            _imageList.Images.Add(ReflectionItems.VSObject_TypeDefShortcut, Color.Magenta); _indexes.Add("TypeDefShortcut", 143);
            _imageList.Images.Add(ReflectionItems.VSObject_Union, Color.Magenta); _indexes.Add("Union", 144);
            _imageList.Images.Add(ReflectionItems.VSObject_Union_Friend, Color.Magenta); _indexes.Add("Union_Friend", 145);
            _imageList.Images.Add(ReflectionItems.VSObject_Union_Protected, Color.Magenta); _indexes.Add("Union_Protected", 146);
            _imageList.Images.Add(ReflectionItems.VSObject_Union_Sealed, Color.Magenta); _indexes.Add("Union_Sealed", 147);
            _imageList.Images.Add(ReflectionItems.VSObject_Union_Shortcut, Color.Magenta); _indexes.Add("Union_Shortcut", 148);
            _imageList.Images.Add(ReflectionItems.VSObject_UnionPrivate, Color.Magenta); _indexes.Add("UnionPrivate", 149);
            _imageList.Images.Add(ReflectionItems.VSObject_ValueType, Color.Magenta); _indexes.Add("ValueType", 150);
            _imageList.Images.Add(ReflectionItems.VSObject_ValueType_Friend, Color.Magenta); _indexes.Add("ValueType_Friend", 151);
            _imageList.Images.Add(ReflectionItems.VSObject_ValueType_Protected, Color.Magenta); _indexes.Add("ValueType_Protected", 152);
            _imageList.Images.Add(ReflectionItems.VSObject_ValueType_Sealed, Color.Magenta); _indexes.Add("ValueType_Sealed", 153);
            _imageList.Images.Add(ReflectionItems.VSObject_ValueType_Shortcut, Color.Magenta); _indexes.Add("ValueType_Shortcut", 154);
            _imageList.Images.Add(ReflectionItems.VSObject_ValueTypePrivate, Color.Magenta); _indexes.Add("ValueTypePrivate", 155);
        }
        public static ImageList ImageList { get { return _imageList; } }
        public static int GetIndex(string key)
        {
            return _indexes[key];
        }
    
    }
}
